package com.atguigu.tingshu.user.cofig;

import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;

@Component
public class WeChatMpConfig {

    @Autowired
    private WechatAccountConfig wechatAccountConfig;

    /**
     * 创建并配置WxMaService实例
     *
     * 该方法是一个Spring的@Bean方法，用于创建和配置一个WxMaService实例
     * WxMaService是微信小程序的Java SDK，提供了一系列简化微信小程序开发的工具和接口
     * 通过这个方法，我们设置了小程序的appId和appSecret，这是与微信服务器通信所必需的凭证
     *
     * @return 返回一个配置好的WxMaService实例，用于后续的小程序开发
     */
    @Bean
    public WxMaService wxMaService() {
        // 创建WxMaDefaultConfigImpl实例，这是WxMaService的配置类
        WxMaDefaultConfigImpl wxMaDefaultConfig = new WxMaDefaultConfigImpl();
        // 设置小程序的appId，这是小程序的唯一标识
        wxMaDefaultConfig.setAppid(wechatAccountConfig.getAppId());
        // 设置小程序的appSecret，这是小程序的安全密钥
        wxMaDefaultConfig.setSecret(wechatAccountConfig.getAppSecret());
        // 创建WxMaServiceImpl实例，这是实际提供微信小程序功能的类
        WxMaServiceImpl wxMaService = new WxMaServiceImpl();
        // 将配置好的wxMaDefaultConfig设置到wxMaService中
        wxMaService.setWxMaConfig(wxMaDefaultConfig);
        // 返回配置好的WxMaService实例
        return wxMaService;
    }
}
